// pages/cart/cart.js
import {
    showToast
} from "../../request/show.js"
Page({

    /**
     * 页面的初始数据
     */
    data: {
        address: {
            username:""
        },
        cart: [],
        checkbox: false,
        price: 0,
        num: 0
    },
    // 不存在 第一次添加
    //  this.GoodsInfo.num=1;
    //  this.GoodsInfo.checked=true;
    // 获取收货地址
    diZhi() {
        wx.chooseAddress({
            success: (result) => {
                let address = {
                  city:result.provinceName+result.cityName+result.countyName,
                  addressInfo:result.detailInfo,
                  username:result.userName,
                  telNumber:result.telNumber
                }
                wx.setStorageSync('address', address)
                this.setData({
                    address:wx.getStorageSync('address')
                })
            }
          })
    },
    fuXun(e) {
        const goods_id = e.currentTarget.dataset.id;
        // console.log(goods_id)
        let {
            cart
        } = this.data
        console.log(cart)
        let index = cart.findIndex(v => v.data.message.goods_id === goods_id)
        // 选中状态取反
        cart[index].checked = !cart[index].checked;
        this.setCart(cart)
    },
    // 全选 反选
    quan() {
        let {
            cart,
            checkbox
        } = this.data
        // 修改值
        checkbox = !checkbox
        cart.forEach(v => v.checked = checkbox);
        this.setCart(cart)
    },
    // 封装计算
    setCart(cart) {
        let checkbox = true
        let price = 0;
        let num = 0;
        cart.forEach(v => {
            if (v.checked) {
                price += v.num * v.data.message.goods_price;
                num += v.num;
            } else {
                checkbox = false;
            }
        })
        checkbox = cart.length != 0 ? checkbox : false;
        this.setData({
            cart,
            checkbox,
            price,
            num
        })
        wx.setStorageSync("cart", cart);
    },
    // 商品数量编辑
    jiajian(e) {
        // 获取传递过来的参数
        const {
            operation,
            id
        } = e.currentTarget.dataset
        //获取购物车的数组
        let {
            cart
        } = this.data
        // 找到需要修改的商品的索引
        const index = cart.findIndex(v => v.data.message.goods_id === id)
        // 判断是否执行删除
        if (cart[index].num === 1 && operation === -1) {
            wx.showModal({
                title: '提示',
                content: '是否要删除',
                success: (res) => {
                    if (res.confirm) {
                        cart.splice(index, 1)
                        this.setCart(cart)
                    } else if (res.cancel) {
                        console.log('用户点击取消')
                    }
                }
            })
        } else {
            cart[index].num += operation;
            // 设置回缓存和data中
            this.setCart(cart);
        }
    },
    // 结算
    async jeiSuan() {
        const {
            // address,
            num
        } = this.data;
        // if (!address.num) {
        //     await showToast({
        //         title: "您还没有选择收货地址"
        //     });
        //     return;
        // }
        // 判断用户有没有选购商品
        if (num === 0) {
            await showToast({
                title: "您还没有选购商品"
            });
            return;
        }
        // 跳转到支付页面
        wx.navigateTo({
            url: '/pages/pay/pay',
        });
    },
    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {

    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        const address = wx.getStorageSync("address");
        // 1.获取缓存中的购物车数据
        const cart = wx.getStorageSync("cart") || []
        this.setData({
            address
        });
        this.setCart(cart);
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})